package edu.seminario

import org.codehaus.groovy.grails.web.json.JSONArray;
import org.codehaus.groovy.grails.web.json.JSONObject;

class Restos {

	String nombre
	String direccion
	Zona zona
	Zona subzona
	String cp
	String localidad
	TipoCocina cocina
	String mail
	String creff
	int descuento
	float precioM
	float precioN
	int longitud
	int latitud
	int visitas
	String tarjetas
	RangoPrecio rangoPrecio

	static constraints = {
		subzona nullable: true
		mail nullable: true
		creff nullable: true
		longitud nullable: true
		latitud nullable: true
		tarjetas nullable: true
	}

	/**
	 * 
	 * @return 
	 */
	JSONObject transformToJson() {
		JSONObject jsonObject = new JSONObject()
		jsonObject.put('nombre', nombre)
		jsonObject.put('direccion', direccion)
		jsonObject.put('zona', zona != null ? zona.transformToJson(): null)
		jsonObject.put('subzona', subzona != null ? subzona.transformToJson(): null)
		jsonObject.put('cp', cp)
		jsonObject.put('localidad', localidad)
		jsonObject.put('cocina', cocina.transformToJson())
		jsonObject.put('mail', mail)
		jsonObject.put('creff', creff)
		jsonObject.put('descuento', descuento)
		jsonObject.put('precioM', precioM)
		jsonObject.put('precioN', precioN)
		jsonObject.put('longitud', longitud)
		jsonObject.put('latitud', latitud)
		jsonObject.put('visitas', visitas)
		jsonObject.put('tarjetas', tarjetas)
		
		JSONArray caracteristicasJson = new JSONArray()
		RestoCaracteristica.findAllByRestos(this).each { 
			caracteristicasJson.add(it.caracteristicas.transformToJson())
		}
		jsonObject.put('caracteristicas', caracteristicasJson)
	
		JSONArray mediosPagosJson = new JSONArray()
		MediosPagoRestos.findAllByRestos(this).each {
			mediosPagosJson.add(it.mediosPago.transformToJson())
		}
		jsonObject.put('mediosPagos', mediosPagosJson)
		
		return jsonObject
	}
}
